<?php
/*
 * Autor: Jorge Chamorro Padial <jorge@devetch.com>
 * Licencia: GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */

/**
 * Se encarga de la comunicación de la web con la BBDD, formando una capa intermedia
 * que, por un lado, evita que tener que mezclar la lógica del BBDD con la lógica de la web y, por otro lado
 * permite que si se produce un cambio en el motor de BBDD, el programa no deba ser modificado.
 *
 * @author jorge
 */

include_once 'conexion/BD_mysql.php';
include_once 'objetos/Usuario.php';
include_once 'objetos/Pais.php';
include_once 'objetos/Partido.php';
include_once 'objetos/Asamblea.php';
include_once 'objetos/Votacion.php';
include_once 'objetos/Opcion.php';


class Interfaz_conexion {
    private $bbdd;
    private $host;
    private $usuario;
    private $pass;
    private $esquema;

    function __construct($host, $usuario, $pass, $esquema) {
        $this->host = $host;
        $this->usuario = $usuario;
        $this->pass = $pass;
        $this->esquema=$esquema;
        $this->bbdd = new BD();       
    }


    // Conecta con el servidor de la BBDD
    public function conectar()
    {        
       $resultado = $this->bbdd->conectar($this->host, $this->usuario, $this->pass);

       if (is_integer($resultado) && $resultado == 0)       {
                      $this->bbdd->setEsquema ($this->esquema);
           return 0;
       }
       else
           return 1;
    }

    // Se desconecta del servidor de la BBDD
    public function desconectar()
    {
        return $this->bbdd->desconectar();
    }

    /*
     * FUNCIONES DE INSERCIÓN
     */

    /**
     * Añade un usuario a la Base de Datos
     * @param <Usuario> Usuario
     * @return <boolean>
     */
    public function addUsuario($usuario)
    {

     
            $datos['nick']=$usuario->getNick();
            $datos['idUsuario']=$usuario->getId();
            $datos['nivel']=$usuario->getNivel();
            $datos['idPartido']=$usuario->getPartido();
            $datos['nacimiento']=$usuario->getNacimiento();
            $datos['idNacionalidad']=$usuario->getNacionalidad();
            $datos['idResidencia']=$usuario->getResidencia();
            $datos['is_sysop']=$usuario->getEs_admin();

            if (is_int($this->bbdd->setValor('usuario',  $datos)))
                return 0;
            else
                return 1;
    }

     /**
     * Añade una votación a la Base de Datos
     * @param <Votacion> votacion
     * @return <boolean>
     */
    public function addVotacion($votacion)
    {

       
            $datos['idAsamblea']=$votacion->getIdAsamblea();
            $datos['titulo']=$votacion->getTitulo();
            $datos['descripcion']=$votacion->getDescricpion();
            $datos['multiples']=$votacion->getMultiples();
            $datos['fecha_inicio']=$votacion->getFecha_inicio();
            $datos['fecha_fin']=$votacion->getFecha_fin();
            $datos['abierta']=$votacion->getAbierta();


            $id = $this->bbdd->setValor("votacion",  $datos);
            
            if (is_int($id))
                 return $id;
            else
                return 1;
    }

    /**
     * Añade una opción a la Base de Datos
     * @param <Opcion> opción
     * @return <boolean>
     */
    public function addOpcion($opcion)
    {


            $datos['idVotacion']=$opcion->getIdVotacion();
            $datos['nombre']=$opcion->getnombre();



            if (is_int($this->bbdd->setValor('opciones',  $datos)))
                return 0;
            else
                return 1;
    }

    /**
     * Añade un país a la Base de Datos
     * @param <Pais> pais
     * @return <boolean>
     */
    public function addPais($pais)
    {


            $datos['idNacionalidad']=$pais->getIdPais();
            $datos['Pais']=$pais->getNombre();

            if (is_int($this->bbdd->setValor('nacionalidad',  $datos)))
                return 0;
            else
                return 1;
    }

    /**
     * Añade una regón a la Base de Datos
     * @param <Region> REgion
     * @return <boolean>
     */
    public function addRegion($region)
    {

            $datos['idResidencia']=$region->getIdRegion();
            $datos['nombre']=$region->getNombre();

            if (is_int($this->bbdd->setValor('residencia',  $datos)))
                return 0;
            else
                return 1;
    }

     /**
     * Añade un partido a la Base de Datos
     * @param <Partido> partido
     * @return <boolean>
     */
    public function addPartido($partido)
    {
            $datos['idPartido']=$partido->getIdPartido();
            $datos['nombre']=$partido->getNombre();
            $datos['idNacionalidad']=$partido->getIdNacionalidad();

            if (is_int($this->bbdd->setValor('partido',  $datos)))
                return 0;
            else
                return 1;
    }


    /*
     * FUNCIONES DE RECUPERACIÓN DE DATOS
     */

    public function getUsuario($id)
    {        
        $resultado = $this->bbdd->select('usuario','idUsuario',$id);

        if ($resultado == 0)
        {
            if ($this->bbdd->getNumFilas() != 0)
            {
                $idUsuario = $this->bbdd->getValorPorNombreColumna(0,'idUsuario');
                $nick = $this->bbdd->getValorPorNombreColumna(0,'nick');               
                $nivel = $this->bbdd->getValorPorNombreColumna(0,'nivel');
                $idPartido = $this->bbdd->getValorPorNombreColumna(0,'idPartido');
                $nacimiento = $this->bbdd->getValorPorNombreColumna(0,'nacimiento');
                $idNacionalidad = $this->bbdd->getValorPorNombreColumna(0,'idNacionalidad');
                $idResidencia = $this->bbdd->getValorPorNombreColumna(0,'idResidencia');
                $is_sysop = $this->bbdd->getValorPorNombreColumna(0,'is_sysop');

                $usuario = new Usuario();
                $usuario->setNick($nick);
                $usuario->setId($idUsuario);
                $usuario->setPartido($idPartido);
                $usuario->setNivel($nivel);
                $usuario->setNacimiento($nacimiento);
                $usuario->setNacionalidad($idNacionalidad);
                $usuario->setResidencia($idResidencia);
                $usuario->setEs_admin($is_sysop);
                return $usuario;
            }
            else
                return $resultado;
        }
        else
            return null;

    }

    public function getNombreUsuario($idUsuario){
        $resultado = $this->bbdd->select('usuario','idUsuario',$idUsuario);

        if ($resultado == 0)
        {
            if ($this->bbdd->getNumFilas() != 0)
            {

                return $this->bbdd->getValorPorNombreColumna(0,'nick');

            }
            else
                return $resultado;
        }
        else
            return null;
    }

    public function getNombreVotacion($idVotacion){
        $resultado = $this->bbdd->select('votacion','idVotacion',$idVotacion);

        if ($resultado == 0)
        {
            if ($this->bbdd->getNumFilas() != 0)
            {

                return $this->bbdd->getValorPorNombreColumna(0,'titulo');

            }
            else
                return $resultado;
        }
        else
            return null;
    }

    public function getNumVotos($idVotacion){
        $resultado = $this->bbdd->ejecutar("SELECT COUNT(*) AS 'total' FROM usuario_vota_opcion WHERE idVotacion = $idVotacion");

        if ($resultado == 0)
        {
            $numfilas = $this->bbdd->getNumFilas();
            if ($numfilas != 0)
            {
                return $this->bbdd->getValorPorNombreColumna(0 ,'total');
            }
            else
                return -1;
        }
        else
            return null;
    }


    public function getListaAsambleas()
    {
        $resultado = $this->bbdd->select('*','asamblea');

        if ($resultado == 0)
        {
            $numfilas = $this->bbdd->getNumFilas();
            if ($numfilas != 0)
            {
                for ($contador; $contador < $numfilas; $contador++){
                    $fila['id'] = $this->bbdd->getValorPorNombreColumna($contador ,'idAsamblea');
                    $fila['nombre'] = $this->bbdd->getValorPorNombreColumna($contador ,'nombre');
                    $asambleas[$contador] = $fila;
                }
                return $asambleas;

            }
            else
                return -1;
        }
        else
            return $resultado;

    }




    public function getListaPaises()
    {
        $resultado = $this->bbdd->ejecutar("SELECT * FROM nacionalidad ORDER BY Pais ASC");

        if ($resultado == 0)
        {
            $numfilas = $this->bbdd->getNumFilas();
            if ($numfilas != 0)
            {
                for ($contador; $contador < $numfilas; $contador++){
                    $fila['id'] = $this->bbdd->getValorPorNombreColumna($contador ,'idNacionalidad');
                    $fila['pais'] = $this->bbdd->getValorPorNombreColumna($contador ,'Pais');
                    $paises[] = $fila;
                }
                return $paises;

            }
            else
                return -1;
        }
        else
            return $resultado;

    }

    public function getNombreNacionalidad($idNacionalidad){
               $resultado = $this->bbdd->ejecutar("SELECT Pais FROM nacionalidad WHERE idNacionalidad = $idNacionalidad ORDER BY Pais ASC");

        if ($resultado == 0)
        {
            if ($this->bbdd->getNumFilas() != 0)            {

                return $this->bbdd->getValorPorNombreColumna(0,'Pais');

            }
            else
                return $resultado;
        }
        else
            return null;
    }

    public function getVotosInvalidos($idOpcion){
       $resultado = $this->bbdd->ejecutar("SELECT COUNT(valido) as 'invalidos' FROM usuario_vota_opcion WHERE valido = 0 AND idOpcion=$idOpcion");

        if ($resultado == 0)
        {
            $numero_filas = $this->bbdd->getNumFilas();
            if ($this->bbdd->getNumFilas() != 0) {

                return $this->bbdd->getValorPorNombreColumna(0, 'invalidos');
            }
            else
                return $resultado;
        }
        else
            return null;
    }
    public function getListaPartidos()
    {
        $resultado = $this->bbdd->select('*','partido');

        if ($resultado == 0)
        {
            $numfilas = $this->bbdd->getNumFilas();
            if ($numfilas != 0)
            {
                for ($contador; $contador < $numfilas; $contador++){
                    $fila['id'] = $this->bbdd->getValorPorNombreColumna($contador ,'idPartido');
                    $fila['nombre'] = $this->bbdd->getValorPorNombreColumna($contador ,'nombre');
                    $fila['idNacionalidad'] = $this->bbdd->getValorPorNombreColumna($contador ,'idNacionalidad');
                    $partidos[] = $fila;
                }
                return $partidos;

            }
            else
                return -1;
        }
        else
            return $resultado;

    }

    public function getListaAdministradores($idAsamblea)
    {
        $resultado = $this->bbdd->select('usuario_administra_asamblea','idAsamblea',$idAsamblea);

        if ($resultado == 0)
        {
            $numfilas = $this->bbdd->getNumFilas();
            if ($numfilas != 0)
            {
                for ($contador; $contador < $numfilas; $contador++){
                    $fila = $this->bbdd->getValorPorNombreColumna($contador ,'idUsuario');
                    $administradores[] = $fila;
                }
                return $administradores;

            }
            else
                return -1;
        }
        else
            return $resultado;

    }

    public function getListasVotaciones($idAsamblea){
          $resultado = $this->bbdd->select('votacion','idAsamblea',$idAsamblea);

        if ($resultado == 0)
        {
            $numfilas = $this->bbdd->getNumFilas();
            if ($numfilas != 0)
            {
                for ($contador; $contador < $numfilas; $contador++){
                    $fila['id'] = $this->bbdd->getValorPorNombreColumna($contador ,'idVotacion');
                    $fila['titulo'] = $this->bbdd->getValorPorNombreColumna($contador ,'titulo');
                    $fila['descripcion'] = $this->bbdd->getValorPorNombreColumna($contador ,'descripcion');
                    $votaciones[$contador] = $fila;
                }
                return $votaciones;

            }
            else
                return -1;
        }
        else
            return $resultado;
    }


    public function getVotacion($idVotacion){
       $resultado = $this->bbdd->select('votacion','idVotacion',$idVotacion);

        if ($resultado == 0)
        {
            if ($this->bbdd->getNumFilas() != 0)
            {

                $id = $this->bbdd->getValorPorNombreColumna(0,'idVotacion');
                $idAsamblea = $this->bbdd->getValorPorNombreColumna(0,'idAsamblea');
                $titulo = $this->bbdd->getValorPorNombreColumna(0,'titulo');
                $descripcion = $this->bbdd->getValorPorNombreColumna(0,'descripcion');
                $multiples = $this->bbdd->getValorPorNombreColumna(0,'multiples');
                $fecha_inicio = $this->bbdd->getValorPorNombreColumna(0,'fecha_inicio');
                $fecha_fin = $this->bbdd->getValorPorNombreColumna(0,'fecha_fin');
                $abierta = $this->bbdd->getValorPorNombreColumna(0,'abierta');
                $opciones = $this->getOpciones($idVotacion);
             
                $votacion = new Votacion();
                $votacion->setIdVotacion($id);
                $votacion->setTitulo($titulo);
                $votacion->setDescricpion($descripcion);
                $votacion->setIdAsamblea($idAsamblea);
                $votacion->setOpciones($opciones);
                $votacion->setMultiples($multiples);
                $votacion->setFecha_inicio($fecha_inicio);
                $votacion->setFecha_fin($fecha_fin);
                $votacion->setAbierta($abierta);

                return $votacion;

            }
            else
                return $resultado;
        }
        else
            return null;
    }


    public function setCondicionesAsamblea($idAsamblea, $condiciones){        

        if ($resultado == 0)
        {
            if ($this->bbdd->getNumFilas() != 0) {
                $datos['nacimiento'] = $condiciones['nacimiento'];
                $datos['idNacionalidad'] = $condiciones['pais'];
                $datos['idPartido'] = $condiciones['partido'];
                $datos['nivel'] = $condiciones['nivel'];

                $this->bbdd->updateValor('asamblea', 'idAsamblea', $idAsamblea, 'nacimiento', $datos['nacimiento']);
                $this->bbdd->updateValor('asamblea', 'idAsamblea', $idAsamblea, 'idNacionalidad', $datos['idNacionalidad']);
                $this->bbdd->updateValor('asamblea', 'idAsamblea', $idAsamblea, 'idPartido', $datos['idPartido']);
                $this->bbdd->updateValor('asamblea', 'idAsamblea', $idAsamblea, 'nivel', $datos['nivel']);
            }
            else
                return false;
        }
        else
            return null;
    }

    public function addVoto($idVotacion,$idOpcion,$idUsuario){

        
            $datos['idUsuario']=$idUsuario;
            $datos['idVotacion']=$idVotacion;
            $datos['idOpcion']=$idOpcion;

            $orden = $this->bbdd->setValor('usuario_vota_opcion',  $datos);
           
            if (is_int($orden)){
                $this->bbdd->ejecutar("CALL `sumVotos`($idOpcion)");                
                return 0;
            }
            else{
                $this->bbdd->ejecutar("ROLLBACK");
                return 1;   
            }
    }

    public function isUSuarioVotado($idUsuario,$idVotacion){
        $resultado = $this->bbdd->ejecutar("SELECT idVotacion FROM usuario_vota_opcion WHERE idVotacion = $idVotacion AND idUsuario = $idUsuario");

        if ($resultado == 0)
        {
            if ($this->bbdd->getNumFilas() != 0) {
                return true;
            }
            else
                return false;
        }
        else
            return null;
    }

    public function isAdmin($idUsuario,$idAsamblea){
        $resultado = $this->bbdd->select('usuario_administra_asamblea','idUsuario',$idUsuario);
        
        if ($resultado == 0)
        {
            $numFilas = $this->bbdd->getNumFilas();
            if ($numFilas != 0) {
                for ($contador = 0; $contador < $numFilas; $contador++){
                    $asamblea_actual = $this->bbdd->getValorPorNombreColumna($contador, 'idAsamblea');                   

                    if ($asamblea_actual == $idAsamblea)
                        return true;
                }
                return false;
            }
            else
                return false;
        }
        else
            return null;
    }

    private function getOpciones($idVotacion){
       $resultado = $this->bbdd->select('opciones','idVotacion',$idVotacion);

        if ($resultado == 0)
        {
            $numero_filas = $this->bbdd->getNumFilas();
            if ($this->bbdd->getNumFilas() != 0) {
               
                for ($contador = 0; $contador < $numero_filas; $contador++) {
                    
                    $idOpcion = $this->bbdd->getValorPorNombreColumna($contador, 'idOpciones');
                    $idVotacion = $this->bbdd->getValorPorNombreColumna($contador, 'idVotacion');
                    $nombre = $this->bbdd->getValorPorNombreColumna($contador, 'nombre');
                    $votos = $this->bbdd->getValorPorNombreColumna($contador, 'votos');

                    $opcion = new Opcion();
                    $opcion->setIdOpcion($idOpcion);
                    $opcion->setNombre($nombre);
                    $opcion->setVotos($votos);
                    
                    $opciones[] = $opcion;
                }

                return $opciones;
            }
            else
                return $resultado;
        }
        else
            return null;
    }
    
    public  function getUsuario_vota($idVotacion){
       $resultado = $this->bbdd->select('usuario_vota_opcion','idVotacion',$idVotacion);

        if ($resultado == 0)
        {
            $numero_filas = $this->bbdd->getNumFilas();
            if ($this->bbdd->getNumFilas() != 0) {


                for ($contador = 0; $contador < $numero_filas; $contador++) {

                    $fila['idVoto'] = $this->bbdd->getValorPorNombreColumna($contador, 'idVoto');
                    $fila['idUsuario'] = $this->bbdd->getValorPorNombreColumna($contador, 'idUsuario');
                    $fila['idVotacion'] = $this->bbdd->getValorPorNombreColumna($contador, 'idVotacion');
                    $fila['idOpcion'] = $this->bbdd->getValorPorNombreColumna($contador, 'idOpcion');
                    $fila['fecha'] = $this->bbdd->getValorPorNombreColumna($contador, 'fecha');
                    $fila['valido'] = $this->bbdd->getValorPorNombreColumna($contador, 'valido');



                    $votaciones[] = $fila;
                }

                return $votaciones;
            }
            else
                return $resultado;
        }
        else
            return null;
    }

    public function modificarVotacion($votacion){
        $idVotacion = $votacion->getIdVotacion();
        $modificacion['idVotacion'] = $idVotacion;
        if (isset ($idVotacion)){
            if (strlen($votacion->getTitulo())>0)
                    $this->bbdd->updateValor('votacion', 'idVotacion', $idVotacion, 'titulo', $votacion->getTitulo());
            if (strlen($votacion->getIdAsamblea())>0)
                    $this->bbdd->updateValor('votacion', 'idVotacion', $idVotacion, 'idAsamblea', $votacion->getIdAsamblea());
            if (strlen($votacion->getDescricpion())>0)
                    $this->bbdd->updateValor('votacion', 'idVotacion', $idVotacion, 'descripcion', $votacion->getDescricpion());
            if (strlen($votacion->getMultiples())>0)
                    $this->bbdd->updateValor('votacion', 'idVotacion', $idVotacion, 'multiples', $votacion->getMultiples());
            if (strlen($votacion->getFecha_inicio())>0)
                    $this->bbdd->updateValor('votacion', 'idVotacion', $idVotacion, 'fecha_inicio', $votacion->getFecha_inicio());
            if (strlen($votacion->getFecha_fin())>0)
                    $this->bbdd->updateValor('votacion', 'idVotacion', $idVotacion, 'fecha_fin', $votacion->getFecha_fin());
            if (strlen($votacion->getAbierta())>0)
                    $this->bbdd->updateValor('votacion', 'idVotacion', $idVotacion, 'abierta', $votacion->getAbierta());
        }  
    }
    
    public  function getVoto($idVoto){
      $resultado = $this->bbdd->select('usuario_vota_opcion','idVoto',$idVoto);

        if ($resultado == 0)
        {
            $numero_filas = $this->bbdd->getNumFilas();
            if ($this->bbdd->getNumFilas() != 0) {

                    $fila['idVoto'] = $this->bbdd->getValorPorNombreColumna(0, 'idVoto');
                    $fila['idUsuario'] = $this->bbdd->getValorPorNombreColumna(0, 'idUsuario');
                    $fila['idVotacion'] = $this->bbdd->getValorPorNombreColumna(0, 'idVotacion');
                    $fila['idOpcion'] = $this->bbdd->getValorPorNombreColumna(0, 'idOpcion');
                    $fila['fecha'] = $this->bbdd->getValorPorNombreColumna(0, 'fecha');
                    $fila['valido'] = $this->bbdd->getValorPorNombreColumna(0, 'valido');


                return $fila;
            }
            else
                return $resultado;
        }
        else
            return null;
    }



    public function getPais($idNacionalidad){
       $resultado = $this->bbdd->select('nacionalidad','idNacionalidad',$idNacionalidad);
       
        if ($resultado == 0)
        {
            if ($this->bbdd->getNumFilas() != 0)
            {           
                $idNacionalidad = $this->bbdd->getValorPorNombreColumna(0,'idNacionalidad');
                $nombre = $this->bbdd->getValorPorNombreColumna(0,'Pais');

                $pais = new Pais();
                $pais->setIdPais($idNacionalidad);
                $pais->setNombre($nombre);

                return $pais;

            }
            else
                return $resultado;
        }
        else
            return null;
    }

    public function getRegion($idResidencia){
       $resultado = $this->bbdd->select('residencia','idResidencia',$idResidencia);

        if ($resultado == 0)
        {
            if ($this->bbdd->getNumFilas() != 0)
            {
                $idNacionalidad = $this->bbdd->getValorPorNombreColumna(0,'idResidencia');
                $nombre = $this->bbdd->getValorPorNombreColumna(0,'nombre');

                $region = new Region();
                $region->setIdRegion($idNacionalidad);
                $region->setNombre($nombre);

                return $region;

            }
            else
                return $resultado;
        }
        else
            return null;
    }

    public function getPartido($idPartido){
       $resultado = $this->bbdd->select('partido','idPartido',$idPartido);

        if ($resultado == 0)
        {
            if ($this->bbdd->getNumFilas() != 0)
            {
                $idPartido = $this->bbdd->getValorPorNombreColumna(0,'idPartido');
                $nombre = $this->bbdd->getValorPorNombreColumna(0,'nombre');
                $idNacionalidad = $this->bbdd->getValorPorNombreColumna(0,'idNacionalidad');

                $partido = new Partido();
                $partido->setIdPartido($idPartido);
                $partido->setNombre($nombre);
                $partido->setIdNacionalidad($idNacionalidad);
                
                return $partido;

            }
            else
                return $resultado;
        }
        else
            return null;
    }

    public function getAsamblea($idAsamblea){
       $resultado = $this->bbdd->select('asamblea','idAsamblea',$idAsamblea);

        if ($resultado == 0)
        {
            if ($this->bbdd->getNumFilas() != 0)
            {
                $id = $this->bbdd->getValorPorNombreColumna(0,'idAsamblea');
                $nombre = $this->bbdd->getValorPorNombreColumna(0,'nombre');
                $descripcion = $this->bbdd->getValorPorNombreColumna(0,'descripcion');
                $nivel = $this->bbdd->getValorPorNombreColumna(0,'nivel');
                $nacimiento = $this->bbdd->getValorPorNombreColumna(0,'nacimiento');
                $idNacionalidad = $this->bbdd->getValorPorNombreColumna(0,'idNacionalidad');
                $idPartido = $this->bbdd->getValorPorNombreColumna(0,'idPartido');

                $asamblea = new Asamblea();
                $asamblea->setId($id);
                $asamblea->setNombre($nombre);
                $asamblea->setDescripcion($descripcion);
                $asamblea->setNivel($nivel);
                $asamblea->setNacimiento($nacimiento);
                $asamblea->setNacionalidad($idNacionalidad);
                $asamblea->setPartido($idPartido);

                return $asamblea;

            }
            else
                return $resultado;
        }
        else
            return null;
    }

    public function modificarUsuario($usuario){
        $idUsuario = $usuario->getId();
        $modificacion['idUsuario'] = $idUsuario;
        if (isset ($idUsuario)){
            if (strlen($usuario->getNick())>0)
                    $this->bbdd->updateValor('usuario', 'idUsuario', $idUsuario, 'nick', $usuario->getNick());
            if (strlen($usuario->getNivel())>0)
                    $this->bbdd->updateValor('usuario', 'idUsuario', $idUsuario, 'nivel', $usuario->getNivel());
            if (strlen($usuario->getNacionalidad())>0)
                    $this->bbdd->updateValor('usuario', 'idUsuario', $idUsuario, 'idNacionalidad', $usuario->getNacionalidad());
            if (strlen($usuario->getResidencia())>0)
                    $this->bbdd->updateValor('usuario', 'idUsuario', $idUsuario, 'idResidencia', $usuario->getResidencia());
            if (strlen($usuario->getPartido())>0)
                    $this->bbdd->updateValor('usuario', 'idUsuario', $idUsuario, 'idPartido', $usuario->getPartido());
        }
    }


    public function eliminarVotacion($idVotacion){
      return $this->bbdd->deleteValor('votacion', 'idVotacion' , $idVotacion);
  }

  public function eliminarUsuario($idUsuario){
      return $this->bbdd->deleteValor('usuario', 'idUsuario' , $idUsuario);
  }

   public function eliminarOpcion($idOpcion){
      return $this->bbdd->deleteValor('opciones', 'idOpciones' , $idOpcion);
  }

  public function validarVoto($idVoto){
       $resultado = $this->bbdd->updateValor('usuario_vota_opcion', 'idVoto', $idVoto, 'valido', 1);
  }

  public function desvalidarVoto($idVoto){
       $resultado = $this->bbdd->updateValor('usuario_vota_opcion', 'idVoto', $idVoto, 'valido', 0);
  }

    public function getError(){
        return $this->bbdd->getError();
    }


    public function liberar(){
        $this->bbdd->liberar();
    }
}
